
/**
 * 根据传入的Openlayers传入的View对象, 获取一个缩放因数
 * @param {*} view 
 * @returns 
 */
export const getScaleFactor = (currentZommLevel, baseZoomLevel) => {
    return Math.pow(2, currentZommLevel - baseZoomLevel);
}


/**
 * 修复由于光栅化导致的图片贴图抖动
 * 将传入的物理坐标通过MapAPI转化成像素坐标并取整
 * 再通过取整的像素坐标反向映射到经纬度坐标
 * @param {import("ol/Map.js").default} map 
 * @param {[number, number]} coordinate view的projection决定了是 EPSG:3857 还是 EPSG:4326
 */
export const getPixelRoundedCoord = (map, coordinate) => {
    if (map && map.getPixelFromCoordinate) {
        const pixelCoord = map.getPixelFromCoordinate([x, y]);
        if (Array.isArray(pixelCoord) && pixelCoord.length >= 2) {
            const integerPixelCoord = [Math.round(pixelCoord[0] + dltX), Math.round(pixelCoord[1] + dltY)];
            const geographicCoord = map.getCoordinateFromPixel(integerPixelCoord);
            return geographicCoord;
        }
    }
    return coordinate;
}